package cn.middle.basic.mapper;

import cn.middle.basic.entity.SysRole;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.middle.common.base.mapper.BaseMapper;

public interface SysRoleMapper extends BaseMapper<SysRole> {
	
	/**
	 * 根据用户ID获取用户角色信息
	 * @param userId
	 * @return
	 */
	public List<SysRole> rolesByUser(@Param("userId") Long userId);
	
	/**
	 * 根据编码和名称查询角色信息
	 * @param code
	 * @param name
	 * @return
	 */
	public List<SysRole> rolesByCodeOrName(@Param("code") String code,@Param("name")String name);
	
	/**
	 * 关联角色与菜单权限信息
	 * @param roleId
	 * @param menuId
	 * @return
	 */
	public int associationRolePermission(@Param("roleId")Long roleId,@Param("menuId")Long menuId);
	
	/**
	 * 该角色还关联有用户信息，需要先解除关系才能删除
	 * @param roleId
	 * @return
	 */
	public long associationRoleTotal(@Param("roleId")Long roleId);
	
	/**
	 * 解除角色与权限关系
	 * @param roleId
	 */
	public void disarmPermissions(@Param("roleId")Long roleId);
	
	/**
	 * 检查角色code 是否已被占用
	 * @param code
	 * @return
	 */
	public long occupiedCode(@Param("code")String code);
	
	public List<Long> associationRolePermissions(@Param("roleId")Long roleId);
	

}